home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / umem.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  4KB  |  139 lines

  1.  
  2. /*
  3.  * This file contains defines for the
  4.  *   Micro Memory MM5415
  5.  * family PCI Memory Module with Battery Backup.
  6.  *
  7.  * Copyright Micro Memory INC 2001.  All rights reserved.
  8.  * Release under the terms of the GNU GENERAL PUBLIC LICENSE version 2.
  9.  * See the file COPYING.
  10.  */
  11.  
  12. #ifndef _DRIVERS_BLOCK_MM_H
  13. #define _DRIVERS_BLOCK_MM_H
  14.  
  15.  
  16. #define IRQ_TIMEOUT (1 * HZ)
  17.  
  18. /* CSR register definition */
  19. #define MEMCTRLSTATUS_MAGIC    0x00
  20. #define  MM_MAGIC_VALUE        (unsigned char)0x59
  21.  
  22. #define MEMCTRLSTATUS_BATTERY    0x04
  23. #define  BATTERY_1_DISABLED    0x01
  24. #define  BATTERY_1_FAILURE    0x02
  25. #define  BATTERY_2_DISABLED    0x04
  26. #define  BATTERY_2_FAILURE    0x08
  27.  
  28. #define MEMCTRLSTATUS_MEMORY    0x07
  29. #define  MEM_128_MB        0xfe
  30. #define  MEM_256_MB        0xfc
  31. #define  MEM_512_MB        0xf8
  32. #define  MEM_1_GB        0xf0
  33. #define  MEM_2_GB        0xe0
  34.  
  35. #define MEMCTRLCMD_LEDCTRL    0x08
  36. #define  LED_REMOVE        2
  37. #define  LED_FAULT        4
  38. #define  LED_POWER        6
  39. #define     LED_FLIP        255
  40. #define  LED_OFF        0x00
  41. #define  LED_ON            0x01
  42. #define  LED_FLASH_3_5        0x02
  43. #define  LED_FLASH_7_0        0x03
  44. #define  LED_POWER_ON        0x00
  45. #define  LED_POWER_OFF        0x01
  46. #define  USER_BIT1        0x01
  47. #define  USER_BIT2        0x02
  48.  
  49. #define MEMORY_INITIALIZED    USER_BIT1
  50.  
  51. #define MEMCTRLCMD_ERRCTRL    0x0C
  52. #define  EDC_NONE_DEFAULT    0x00
  53. #define  EDC_NONE        0x01
  54. #define  EDC_STORE_READ        0x02
  55. #define  EDC_STORE_CORRECT    0x03
  56.  
  57. #define MEMCTRLCMD_ERRCNT    0x0D
  58. #define MEMCTRLCMD_ERRSTATUS    0x0E
  59.  
  60. #define ERROR_DATA_LOG        0x20
  61. #define ERROR_ADDR_LOG        0x28
  62. #define ERROR_COUNT        0x3D
  63. #define ERROR_SYNDROME        0x3E
  64. #define ERROR_CHECK        0x3F
  65.  
  66. #define DMA_PCI_ADDR        0x40
  67. #define DMA_LOCAL_ADDR        0x48
  68. #define DMA_TRANSFER_SIZE    0x50
  69. #define DMA_DESCRIPTOR_ADDR    0x58
  70. #define DMA_SEMAPHORE_ADDR    0x60
  71. #define DMA_STATUS_CTRL        0x68
  72. #define  DMASCR_GO        0x00001
  73. #define  DMASCR_TRANSFER_READ    0x00002
  74. #define  DMASCR_CHAIN_EN    0x00004
  75. #define  DMASCR_SEM_EN        0x00010
  76. #define  DMASCR_DMA_COMP_EN    0x00020
  77. #define  DMASCR_CHAIN_COMP_EN    0x00040
  78. #define  DMASCR_ERR_INT_EN    0x00080
  79. #define  DMASCR_PARITY_INT_EN    0x00100
  80. #define  DMASCR_ANY_ERR        0x00800
  81. #define  DMASCR_MBE_ERR        0x01000
  82. #define  DMASCR_PARITY_ERR_REP    0x02000
  83. #define  DMASCR_PARITY_ERR_DET    0x04000
  84. #define  DMASCR_SYSTEM_ERR_SIG    0x08000
  85. #define  DMASCR_TARGET_ABT    0x10000
  86. #define  DMASCR_MASTER_ABT    0x20000
  87. #define  DMASCR_DMA_COMPLETE    0x40000
  88. #define  DMASCR_CHAIN_COMPLETE    0x80000
  89.  
  90. /* 
  91. 3.SOME PCs HAVE HOST BRIDGES WHICH APPARENTLY DO NOT CORRECTLY HANDLE 
  92. READ-LINE (0xE) OR READ-MULTIPLE (0xC) PCI COMMAND CODES DURING DMA 
  93. TRANSFERS. IN OTHER SYSTEMS THESE COMMAND CODES WILL CAUSE THE HOST BRIDGE 
  94. TO ALLOW LONGER BURSTS DURING DMA READ OPERATIONS. THE UPPER FOUR BITS 
  95. (31..28) OF THE DMA CSR HAVE BEEN MADE PROGRAMMABLE, SO THAT EITHER A 0x6, 
  96. AN 0xE OR A 0xC CAN BE WRITTEN TO THEM TO SET THE COMMAND CODE USED DURING 
  97. DMA READ OPERATIONS.
  98. */
  99. #define        DMASCR_READ   0x60000000
  100. #define        DMASCR_READLINE   0xE0000000
  101. #define        DMASCR_READMULTI   0xC0000000
  102.  
  103.  
  104. #define DMASCR_ERROR_MASK    (DMASCR_MASTER_ABT | DMASCR_TARGET_ABT | DMASCR_SYSTEM_ERR_SIG | DMASCR_PARITY_ERR_DET | DMASCR_MBE_ERR | DMASCR_ANY_ERR)
  105. #define DMASCR_HARD_ERROR    (DMASCR_MASTER_ABT | DMASCR_TARGET_ABT | DMASCR_SYSTEM_ERR_SIG | DMASCR_PARITY_ERR_DET | DMASCR_MBE_ERR)
  106.  
  107. #define WINDOWMAP_WINNUM    0x7B
  108.  
  109. #define DMA_READ_FROM_HOST 0
  110. #define DMA_WRITE_TO_HOST 1
  111.  
  112. struct mm_dma_desc {
  113.     __le64    pci_addr;
  114.     __le64    local_addr;
  115.     __le32    transfer_size;
  116.     u32    zero1;
  117.     __le64    next_desc_addr;
  118.     __le64    sem_addr;
  119.     __le32    control_bits;
  120.     u32    zero2;
  121.  
  122.     dma_addr_t data_dma_handle;
  123.  
  124.     /* Copy of the bits */
  125.     __le64    sem_control_bits;
  126. } __attribute__((aligned(8)));
  127.  
  128. #define PCI_VENDOR_ID_MICRO_MEMORY        0x1332
  129. #define PCI_DEVICE_ID_MICRO_MEMORY_5415CN    0x5415
  130. #define PCI_DEVICE_ID_MICRO_MEMORY_5425CN    0x5425
  131. #define PCI_DEVICE_ID_MICRO_MEMORY_6155        0x6155
  132.  
  133. /* bits for card->flags */
  134. #define UM_FLAG_DMA_IN_REGS        1
  135. #define UM_FLAG_NO_BYTE_STATUS        2
  136. #define UM_FLAG_NO_BATTREG        4
  137. #define    UM_FLAG_NO_BATT            8
  138. #endif
  139.